﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bdcs.Core.Entity
{
    /// <summary>
    /// ZInputAIS1数据模型对象
    /// </summary>
    [Serializable]
    public partial class ZInputAIS1Mod
    {
        /// <summary>
        /// 初始化ZInputAIS1数据模型对象
        /// </summary>
        public ZInputAIS1Mod()
        {
            
        }
        /// <summary>
        /// 初始化ZInputAIS1数据模型对象并给所有字段赋值
        /// </summary>
        /// <param name="accuracy">accuracy</param>
        /// <param name="course">course</param>
        /// <param name="ctime">ctime</param>
        /// <param name="file">file</param>
        /// <param name="heading">heading</param>
        /// <param name="lat">lat</param>
        /// <param name="lon">lon</param>
        /// <param name="maneuver">maneuver</param>
        /// <param name="mmsi">mmsi</param>
        /// <param name="radio">radio</param>
        /// <param name="raim">raim</param>
        /// <param name="repeat">repeat</param>
        /// <param name="second">second</param>
        /// <param name="speed">speed</param>
        /// <param name="status">status</param>
        /// <param name="turn">turn</param>
        /// <param name="type">type</param>
        public ZInputAIS1Mod(string accuracy,double? course,double? ctime,string file,double? heading,double? lat,double? lon,double? maneuver,double? mmsi,double? radio,string raim,double? repeat,double? second,double? speed,double? status,double? turn,double? type)
        {
            //给accuracy字段赋值
            this.Accuracy = accuracy;
            //给course字段赋值
            this.Course = course;
            //给ctime字段赋值
            this.Ctime = ctime;
            //给file字段赋值
            this.File = file;
            //给heading字段赋值
            this.Heading = heading;
            //给lat字段赋值
            this.Lat = lat;
            //给lon字段赋值
            this.Lon = lon;
            //给maneuver字段赋值
            this.Maneuver = maneuver;
            //给mmsi字段赋值
            this.Mmsi = mmsi;
            //给radio字段赋值
            this.Radio = radio;
            //给raim字段赋值
            this.Raim = raim;
            //给repeat字段赋值
            this.Repeat = repeat;
            //给second字段赋值
            this.Second = second;
            //给speed字段赋值
            this.Speed = speed;
            //给status字段赋值
            this.Status = status;
            //给turn字段赋值
            this.Turn = turn;
            //给type字段赋值
            this.Type = type;
        }
        
		//属性存储数据的变量
        private string _accuracy;
        private double? _course;
        private double? _ctime;
        private string _file;
        private double? _heading;
        private double? _lat;
        private double? _lon;
        private double? _maneuver;
        private double? _mmsi;
        private double? _radio;
        private string _raim;
        private double? _repeat;
        private double? _second;
        private double? _speed;
        private double? _status;
        private double? _turn;
        private double? _type;
        
        /// <summary>
        /// accuracy
        /// </summary>
        public string Accuracy
        {
            get { return this._accuracy; }
            set { this._accuracy = value; }
        }
        /// <summary>
        /// course
        /// </summary>
        public double? Course
        {
            get { return this._course; }
            set { this._course = value; }
        }
        /// <summary>
        /// ctime
        /// </summary>
        public double? Ctime
        {
            get { return this._ctime; }
            set { this._ctime = value; }
        }
        /// <summary>
        /// file
        /// </summary>
        public string File
        {
            get { return this._file; }
            set { this._file = value; }
        }
        /// <summary>
        /// heading
        /// </summary>
        public double? Heading
        {
            get { return this._heading; }
            set { this._heading = value; }
        }
        /// <summary>
        /// lat
        /// </summary>
        public double? Lat
        {
            get { return this._lat; }
            set { this._lat = value; }
        }
        /// <summary>
        /// lon
        /// </summary>
        public double? Lon
        {
            get { return this._lon; }
            set { this._lon = value; }
        }
        /// <summary>
        /// maneuver
        /// </summary>
        public double? Maneuver
        {
            get { return this._maneuver; }
            set { this._maneuver = value; }
        }
        /// <summary>
        /// mmsi
        /// </summary>
        public double? Mmsi
        {
            get { return this._mmsi; }
            set { this._mmsi = value; }
        }
        /// <summary>
        /// radio
        /// </summary>
        public double? Radio
        {
            get { return this._radio; }
            set { this._radio = value; }
        }
        /// <summary>
        /// raim
        /// </summary>
        public string Raim
        {
            get { return this._raim; }
            set { this._raim = value; }
        }
        /// <summary>
        /// repeat
        /// </summary>
        public double? Repeat
        {
            get { return this._repeat; }
            set { this._repeat = value; }
        }
        /// <summary>
        /// second
        /// </summary>
        public double? Second
        {
            get { return this._second; }
            set { this._second = value; }
        }
        /// <summary>
        /// speed
        /// </summary>
        public double? Speed
        {
            get { return this._speed; }
            set { this._speed = value; }
        }
        /// <summary>
        /// status
        /// </summary>
        public double? Status
        {
            get { return this._status; }
            set { this._status = value; }
        }
        /// <summary>
        /// turn
        /// </summary>
        public double? Turn
        {
            get { return this._turn; }
            set { this._turn = value; }
        }
        /// <summary>
        /// type
        /// </summary>
        public double? Type
        {
            get { return this._type; }
            set { this._type = value; }
        }
        
        /// <summary>
        /// 对比两个ZInputAIS1数据模型对象是否一致
        /// </summary>
        /// <param name="obj">要进行比对的ZInputAIS1数据模型对象</param>
        /// <returns>返回是否一致，为true一致，为false不一致</returns>
        public override bool Equals(object obj)
        {
            //判断传入对象是否为null
            if (obj == null) return false;
            //将传入对象转换成ZInputAIS1数据模型对象
            ZInputAIS1Mod zInputAIS1Mod = obj as ZInputAIS1Mod;
            //判断是否转换成功
            if (zInputAIS1Mod == null) return false;
            //进行匹配属性的值
            return
                //判断accuracy是否一致
                this.Accuracy == zInputAIS1Mod.Accuracy &&
                //判断course是否一致
                this.Course == zInputAIS1Mod.Course &&
                //判断ctime是否一致
                this.Ctime == zInputAIS1Mod.Ctime &&
                //判断file是否一致
                this.File == zInputAIS1Mod.File &&
                //判断heading是否一致
                this.Heading == zInputAIS1Mod.Heading &&
                //判断lat是否一致
                this.Lat == zInputAIS1Mod.Lat &&
                //判断lon是否一致
                this.Lon == zInputAIS1Mod.Lon &&
                //判断maneuver是否一致
                this.Maneuver == zInputAIS1Mod.Maneuver &&
                //判断mmsi是否一致
                this.Mmsi == zInputAIS1Mod.Mmsi &&
                //判断radio是否一致
                this.Radio == zInputAIS1Mod.Radio &&
                //判断raim是否一致
                this.Raim == zInputAIS1Mod.Raim &&
                //判断repeat是否一致
                this.Repeat == zInputAIS1Mod.Repeat &&
                //判断second是否一致
                this.Second == zInputAIS1Mod.Second &&
                //判断speed是否一致
                this.Speed == zInputAIS1Mod.Speed &&
                //判断status是否一致
                this.Status == zInputAIS1Mod.Status &&
                //判断turn是否一致
                this.Turn == zInputAIS1Mod.Turn &&
                //判断type是否一致
                this.Type == zInputAIS1Mod.Type;
        }
        /// <summary>
        /// 将当前ZInputAIS1数据模型对象转换成哈希码
        /// </summary>
        /// <returns>哈希值</returns>
        public override int GetHashCode()
        {
            //将ZInputAIS1数据模型对象的属性进行按位异或运算处理得到哈希码并返回
            return
                //将accuracy进行按位异或运算处理
                (this.Accuracy == null ? 2147483647 : this.Accuracy.GetHashCode()) ^
                //将course进行按位异或运算处理
                (this.Course == null ? 2147483647 : this.Course.GetHashCode()) ^
                //将ctime进行按位异或运算处理
                (this.Ctime == null ? 2147483647 : this.Ctime.GetHashCode()) ^
                //将file进行按位异或运算处理
                (this.File == null ? 2147483647 : this.File.GetHashCode()) ^
                //将heading进行按位异或运算处理
                (this.Heading == null ? 2147483647 : this.Heading.GetHashCode()) ^
                //将lat进行按位异或运算处理
                (this.Lat == null ? 2147483647 : this.Lat.GetHashCode()) ^
                //将lon进行按位异或运算处理
                (this.Lon == null ? 2147483647 : this.Lon.GetHashCode()) ^
                //将maneuver进行按位异或运算处理
                (this.Maneuver == null ? 2147483647 : this.Maneuver.GetHashCode()) ^
                //将mmsi进行按位异或运算处理
                (this.Mmsi == null ? 2147483647 : this.Mmsi.GetHashCode()) ^
                //将radio进行按位异或运算处理
                (this.Radio == null ? 2147483647 : this.Radio.GetHashCode()) ^
                //将raim进行按位异或运算处理
                (this.Raim == null ? 2147483647 : this.Raim.GetHashCode()) ^
                //将repeat进行按位异或运算处理
                (this.Repeat == null ? 2147483647 : this.Repeat.GetHashCode()) ^
                //将second进行按位异或运算处理
                (this.Second == null ? 2147483647 : this.Second.GetHashCode()) ^
                //将speed进行按位异或运算处理
                (this.Speed == null ? 2147483647 : this.Speed.GetHashCode()) ^
                //将status进行按位异或运算处理
                (this.Status == null ? 2147483647 : this.Status.GetHashCode()) ^
                //将turn进行按位异或运算处理
                (this.Turn == null ? 2147483647 : this.Turn.GetHashCode()) ^
                //将type进行按位异或运算处理
                (this.Type == null ? 2147483647 : this.Type.GetHashCode());
        }
        /// <summary>
        /// 将当前ZInputAIS1数据模型对象转换成字符串副本【仅显示在SQL中不能为空的列】
        /// </summary>
        /// <returns>字符串形式副本</returns>
        public override string ToString()
        {
            //将当前ZInputAIS1数据模型对象转换成字符串副本
            return
                "[" +
                "]";
        }
    }
}
